package com.design.patterns.list.flyweight;

/**
 * 抽象享元类
 * 需要明确定义类的 内部状态 与 外部状态
 * 内部状态可理解为享元类自身的一个属性状态，它不随外部环境的变化而变化。在生成一个具体享元类时就应该明确，享元类的重用标识。
 * 外部状态可理解为客户端使用享元类时，需要给他传递的信息。是随外部环境变化而变化的
 * 内部状态与外部状态相互独立并没有关联
 * @author Wangzhiwen
 */
public abstract class Flyweight {

    // 独立外部状态
    protected abstract void operation(String extrinsicState);

}
